home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / mc / extfs / uarj < prev    next >
Text File  |  2009-10-25  |  2KB  |  76 lines

  1. #! /bin/sh
  2. #                                                                     
  3. # Written by Viatcheslav Odintsov (2:5020/181)
  4. # (C) 2002 ARJ Software Russia.
  5. #
  6. # This is an updated parser for ARJ archives in Midnight Commander. You need
  7. # full ARJ rather than UNARJ. Open-source ARJ v 3.10 for Unix platforms can
  8. # be obtained here:
  9. #
  10. # - http://www.sourceforge.net/projects/arj/
  11. # - http://arj.sourceforge.net/
  12.  
  13.  
  14. ARJ="arj -+ -ja1"
  15.  
  16.  
  17. mcarjfs_list ()
  18. {
  19.  $ARJ v "$1" | mawk -v uuid=$(id -ru) '
  20.   { 
  21.    if (($0 ~ /^[0-9]+\) .*/)||($0 ~ /^------------ ---------- ---------- -----/)){
  22.     if (filestr ~ /^[0-9]+\) .*/) {
  23.      printf "%s   1 %-8d %-8d %8d %02d-%02d-%02d %02d:%02d %s%s\n", perm, uid, gid, size, date[2], date[3], date[1], time[1], time[2], file, symfile
  24.      perm=""
  25.      file=""
  26.      symfile=""
  27.      filestr=""
  28.     }
  29.    }
  30.  
  31.    if ($0 ~ /^[0-9]+\) .*/) {
  32.     filestr=$0
  33.     sub(/^[0-9]*\) /, "")
  34.     file=$0
  35.     uid=uuid
  36.     gid=0
  37.    }
  38.  
  39.    if ($0 ~ /^.* [0-9]+[\t ]+[0-9]+ [0-9]\.[0-9][0-9][0-9] [0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9].*/) {
  40.     size=$3
  41.     split($6, date, "-")
  42.     split($7, time, ":")
  43.     if ($8 ~ /^[rwx-]/) {perm=$8;}
  44.     else                {perm="-rw-r--r--"}
  45.    }
  46.  
  47.    if ($0 ~ /^[\t ]+SymLink -> .*/) {
  48.     symfile = " -> "$3
  49.     perm="l"substr(perm, 2)
  50.    }
  51.  
  52.    if ($0 ~ /^[\t ]+Owner: UID [0-9]+\, GID [0-9]+/) {
  53.     uid=$3
  54.     gid=$5
  55.     owner=1
  56.    }
  57.   }'
  58. }
  59.  
  60.  
  61. mcarjfs_copyout ()
  62. {
  63.     $ARJ e -y "$1" "$2" -jw"$3" >/dev/null 2>/dev/null
  64. }
  65.  
  66.  
  67. umask 077
  68. cmd="$1"
  69. shift
  70. case "$cmd" in
  71.     list)    mcarjfs_list    "$@" ;;
  72.     copyout) mcarjfs_copyout "$@" ;;
  73.     *)       exit 1 ;;
  74. esac
  75. exit 0
  76.